package org.netwia.networks;

import java.util.Map;

/**
 * Defines the functionality of the node.
 * Node is the simple processing unit which takes input from one or more sources and produces one output.
 * 
 * @author radek.hecl
 *
 * @param <T> type of the input and output parameter
 */
public interface Node<T> {

    /**
     * Processes the inputs and returns output.
     * 
     * @param inputs inputs to be processed, keys are the names of the inputs
     * @return output object
     */
    public T process(Map<String, T> inputs);
}
